#include<bits/stdc++.h>
using namespace std;
int T,n,a[200010],l[200010],ans;
bool red[200010],blue[200010];
bool cr(int a,int b){
    for(int i=a;i<=b;i++){
        if(red[i]==true) return false;
    }
    return true;
}
bool cb(int a,int b){
    for(int i=a;i<=b;i++){
        if(blue[i]==true) return false;
    }
    return true;
}
void dfs(int u,int cnt){
    if(u==1){
        ans=max(ans,cnt);
        return;
    }
    int i=u;
    if(l[i]==i){
        dfs(i-1,cnt);
        return;
    }
    if(cr(l[i],i)==true){
        for(int j=l[i];j<=i;j++){
            red[j]=true;
        }
        dfs(i-1,cnt+a[i]);
        for(int j=l[i];j<=i;j++){
            red[j]=false;
        }
    }
    if(cb(l[i],i)==true){
        for(int j=l[i];j<=i;j++){
            blue[i]=true;
        }
        dfs(i-1,cnt+a[i]);
        for(int j=l[i];j<=i;j++){
            blue[i]=false;
        }
    }
    dfs(i-1,cnt);
}
int main(){
    freopen("color.in","r",stdin);
    freopen("color.out","w",stdout);
    cin>>T;
    while(T--){
        cin>>n;
        ans=0;
        memset(l,0,sizeof l);
        for(int i=1;i<=n;i++){
            cin>>a[i];
            for(int j=i-1;j>=1;j--){
                if(a[i]==a[j]){
                    l[i]=j;
                    break;
                }
            }
            if(l[i]==0) l[i]=i;
        }
        dfs(n,0);
        cout<<ans<<endl;
    }
    return 0;
}
